package com.service.infoEntry.service;

import com.service.config.utils.Result;
import com.service.infoEntry.dto.LoginUserDto;
import com.service.infoEntry.dto.UserInfoDto;
import com.service.infoEntry.entity.UserInfo;
import com.service.infoEntry.vo.UserVo;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;

public interface UserInfoService {
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    UserInfo queryById(String id);

    /**
     * 新增数据
     *
     * @param userInfo 实例对象
     * @return 实例对象
     */
    UserInfo insert(UserInfo userInfo);

    /**
     * 修改数据
     *
     * @param userInfo 实例对象
     * @return 实例对象
     */
    UserInfo update(UserInfo userInfo);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(String id);

    UserInfo queryAll(LoginUserDto loginUserDto);

    Result register(UserInfoDto userInfoDto, String realIp,String adder) throws Exception;

    UserInfo queryAlls(LoginUserDto loginUserDto);


    /**
     * 用户标准登录
     * @param loginUserDto
     * @param httpServletRequest
     * @return
     * @throws Exception
     */
    HashMap getToken(LoginUserDto loginUserDto,HttpServletRequest httpServletRequest) throws Exception;

    /**
     * 查询用户个人信息
     * @param userId
     * @return
     */
    UserVo queryByUserId(String userId);

    /**
     * 用户修改默认团队
     * @param userId
     * @param teamName
     */
    void changeDefaultTeam(String userId, String teamName);


    List<UserVo> queryUserFuzzy(String username,String teamId);

    Result updateUserInfo(UserInfoDto userInfo,String userId) throws Exception;
}
